Methods and systems for optimized staggered disk drive spinup

ABSTRACT

An array may comprise a plurality of disk drives and a controller coupled to the plurality of drives. The controller may be configured to initiate spin-up of one or more first disk drives of the array; determine when each of the first disk drive(s) of the array for which spin-up was initiated reaches a predetermined spin rate that is less than a target spin rate at which the disk drive is ready to process data access commands; and initiate spin-up of one or more second disk drives of the array as the first disk drive(s) is determined to have reached the predetermined spin rate.

BACKGROUND

The size of the power supply in Redundant Array of Independent Disks(RAID) controllers is conventionally limited to reduce costs. Thisforces the controller to limit the number of drives that can be spun-upsimultaneously. Spinning up a disk drive may comprise bringing the diskpack thereof from an initial state in which the constituent plattersthat support the data-carrying magnetic material are not rotating to astate in which the constituent platters are spinning at the target orrated revolutions per minute or rpm. For current disk drives, suchtarget rate may be, for example, 5400, 7200, 10,000 or 15,000 rpm. Thenumber of disk drives that are spun-up simultaneously is limited inconventional arrays to limit the aggregate current draw from the powersupply to within the specified capacity of the power supply to sourcesuch current. Indeed, if the current draw becomes too large, the powersupply may fail, causing an unintended reset of the entire array.

Delayed “Time to First Data”, or the period of time elapsed frominitiating spin-up to the time at which the disk drive reports that itis ready to process data access commands, is a consequence of thislimitation. This “Time to First Data” is significantly greater than thetime necessary to spin-up the disk packs of the disk drives as the diskdrives, after having reached their target spin rate, must energize theVoice Coil Motor (VCM) of the head disk assembly (HDA) to swing theactuator(s) over the disk surfaces, achieve sync with the encoded servosectors and report drive readiness. This delay is a cumulative effect,in that the greater the number of drives in the array, the longer thearray takes to come to ready state in which all constituent drives havereported that they are ready to process data access commands.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a graph showing the current drawn from a disk drive over time,from initiation of spin-up to the time at which the disk drive reportsthat it is ready to process data access commands.

FIG. 2 is a graphical representation of a conventional array of diskdrives and the time elapsed from initial spin-up to the time at whichthe last group of disk drives spun-up reports that they are ready toprocess data access commands.

FIG. 3 is a graph showing the current drawn from a disk drive configuredto be incorporated into an array over time, from initiation of spin-upto the time at which the disk drive reports that it is ready to processdata access commands, according to one embodiment.

FIG. 4 is a graphical representation of an array of disk drives,according to one embodiment.

FIG. 5 is a block diagram of a data storage device controller configuredto couple to a plurality of data storage devices, according to oneembodiment.

FIG. 6 is a flowchart of a method according to one embodiment.

DETAILED DESCRIPTION

FIG. 1 is a graph showing the current drawn from a disk drive over time,from initiation of spin-up to the time at which the disk drive reportsthat it is ready to process data access commands. As shown therein, attime t₀, the disk drive is commanded is to spin-up, at which point thedisk drive draws about 1.44 amperes (A) from the power supply (notshown). This current draw is large, as the disk drive's spindle motormust overcome the inertia of the immobile disk pack, which manifestsitself as a large back electro-motive force or BEMF, as seen across thespindle motor power terminals. This current draw continues at about thislevel until t₁, at about 1.2 seconds after initial spin-up, in theexample being developed in FIG. 1. As the disk drive approaches itstarget spin rate (for example, 5400, 7200, 10,000 or 15,000 rpm), thecurrent draw decreases, as does the BEMF decreases, as the spindle motorneed exert less torque to increase the angular velocity of the diskpack. At about time t₂, the disk pack of the disk drive has reached itstarget spin rate (e.g., the aforementioned (for example, 5400, 7200,10,000 or 15,000 rpm), whereupon the disk drive performs a number ofoperations aimed to bring the disk drive in condition to service dataaccess commands. This condition is shown as “Drive Ready” in FIG. 1, attime t₃, about 3.9 seconds after the disk drive was commanded tospin-up, for an exemplary disk drive having the profile shown in FIG. 1.

FIG. 2 is a graphical representation of a conventional array of diskdrives and the time elapsed from initial spin-up to the time at whichthe last group of disk drives spun-up reports that they are ready toprocess data access commands. FIG. 3 shows an array 200 of 25 diskdrives, labeled D1-D25. Such an array 200 may form a RAID. In such anarray, the RAID controller, having only a predetermined number of ampsfrom which the disk drives may draw during spin-up and during normaloperation, may limit the number of disk drives that are spun-upsimultaneously, in order to limit to aggregate current draw of the diskdrives to within the specified limits of the RAID power supply. In theexample of FIG. 2, the RAID controller (not shown), five disk drives areshown to be spun-up simultaneously, beginning with disk drives D1through D5. As soon as these drives report “Drive Ready”, the next group(i.e., disk drives D6-D10) of five drives may be spun-up. In turn, asthese disk drives report “Drive Ready”, the next group D11-D15 may bespun-up, followed by D16-D20 and ending with the last group of diskdrives; namely, disk drives D21-D25. As shown in FIG. 2, the timeinterval elapsed between the initial group of disk drives beingcommanded to spin-up and the last group of drives reporting “DriveReady” is shown in FIG. 2 as t_(conv). While there may be some smallvariation across drives in the timing of the “Drive Ready” signal(assuming all drives within the array 200 are of the same type), suchsmall variations may be safely ignored here.

FIG. 3 is a graph 300 showing the current drawn from a disk driveconfigured to be incorporated into an array over time, from initiationof spin-up to the time at which the disk drive reports that it is readyto process data access commands, according to one embodiment. It is tobe noted that embodiments are equally applicable to hybrid disk drives;that is, to data storage devices comprising both rotating media andsolid state memory. According to one embodiment, the current profile ofthe constituent disk drives of an array may be used to good advantage inenabling next sequential disk drive(s) to be spun-up sooner than shownin FIGS. 1 and 2. According to one embodiment, a predetermined spin rate302 may be established. This predetermined spin rate may be, assuggested in FIG. 3, less than the target spin rate of the disk drive.Moreover, according to one embodiment, this predetermined spin rate 302is reached sooner than the disk drive would otherwise reach the diskdrive's target spin rate (the aforementioned 5400, 7200, 10,000 or15,000 rpm) and sooner than the disk drive indicates its readiness toprocess data access commands. According to one embodiment, the currentdrawn from the disk drive when the disk drive reaches the predeterminedspin rate is sufficiently low as to enable the next disk drive or diskdrives to be spun-up without overloading the power supply. Moreover, asshown at 304, the time elapsed between t₀, meaning the point in time atwhich the disk drive was commanded to spin-up and t_(Pred rpm), the timeat which the predetermined spin rate has been reached, is less than fromt₀ to t₃, the point in time at which the disk drive has indicated thatit is ready to process data access commands. Moreover, the interval fromt₀ to t_(Pred rpm) is less than the time interval from t₀ to the periodin time at which the disk drive has reached its target spin rate. Frominspection of the embodiment of FIG. 3, it can be seen that the nextsequential disk drive in the array may be spun-up aboutt_(Saved)=t₃−t_(Pred rpm) or about 2.1 seconds sooner than wouldotherwise be the case had controller waited until the disk driveannounced Drive Ready at t3 to spin-up the next sequential disk drive(s)or about 750 ms faster than would be the case had the controller waiteduntil the disk drive reached its target spin rate before spinning up oneor more next sequential disk drives.

According to one embodiment, the predetermined spin rate may bepredetermined for each kind, type or model of disk drives. Indeed, suchpredetermined spin rate may be determined by the manufacturer for eachdisk drive kind, type or model. Alternatively, the predetermined spinrate may be predetermined for each individual disk drive. For example,such predetermined spin rate may be set by the manufacturer at the timeof, for example, Initial Burn In or IBI. According to one embodiment,the predetermined spin rate may be a predetermined percentage of thetarget spin rate. For example, the predetermined spin rate may beselected to be between about 20% and about 90% of the target spin rateof the disk drive. According to one embodiment, the predeterminedpercentage may be selected to be between about 50% and about 80% of thetarget spin rate of the disk drive. For example, the predeterminedpercentage may be selected to be about 75% of the target spin rate ofthe disk drive. Accordingly, for a 7200 rpm disk drive and apredetermined percentage of 75%, the array controller may command thenext sequential disk drive or disk drives to spin-up when the disk driveis determined to have reached a spin rate of about 5,400 rpm.

FIG. 4 is a graphical representation of an array of disk drives,according to one embodiment. As shown therein, instead of spinning up anext sequential disk drive or disk drives upon the disk drive(s)reporting readiness to process data access commands, the controller maybe configured, according to one embodiment, to command the nextsequential disk drive or disk drives to spin-up as soon as (or shortlyafter) the disk drive(s) have reached or exceeded a predetermined spinrate. As shown in FIG. 4, the arrows within the current profiles shownwithin the disk drives D1-D25 signal the point in time at which the nextsequential drive or drives of the array may be spun-up. As shown in FIG.4, the entire array 400 may be considered to be ready for unrestrictedreads and writes to all of its constituent disk drives when the lastdisk drive has indicated that it is ready to process data accesscommands, as noted by the “Drive Ready” legend in FIG. 4. According toone embodiment, the time interval elapsed between t₀, the time at whichthe controller commands the first disk drive or group of disk drives tospin-up and t_(Emb), the time at which the last disk drive or the lastgroup of disk drives indicates that it is ready to process data accesscommands, may be less than the corresponding time interval t₀ tot_(Conv) shown in FIG. 2. It is to be understood that t_(Emb) maycorrespond to the point in time at which the last disk drive reportsthat it is ready to process data access commands. However, as the diskdrives of array 400 may be substantially identical (i.e., same make andmodel), the disk drives shown in the last spun-up group; namely, diskdrives D21 to D25, may report being ready to support data accesscommands at substantially the same time, with minimal variations fromdrive to drive. Although such variations are acknowledged, they may besafely ignored herein for purposes of illustration and explanation.

FIG. 5 is a block diagram of a data storage device controller 502configured to couple to a plurality of data storage devices, accordingto one embodiment. As shown, the controller 502 may be configured tocouple to a plurality 504 of disk drives. Such plurality of disk drives504 may be organized as an array of disk drives. For example, reference504 may denote a RAID. The data storage device (e.g., disk drive)controller 502 may be configured, according to one embodiment, to carryout the method of FIG. 6. As shown therein, block B61 calls for thecontroller 502 to initiate spin-up of at least one first disk drive ofthe array. For example, and with reference to FIGS. 4 and 5, thecontroller 502 may command one or more disk drives of the first row(disk drives D1-D5) to spin-up. Such first disk drives may, therefore,be found in the first row of the disk drives shown in FIGS. 4 and 5. Itis to be understood that five disk drives per row is shown in FIGS. 4and 5 for illustrative and exemplary purposes only. In an actualimplementation, the array 504 may be, for example, a RAID comprisingfifty or more disk drives, which may be spatially and/or logicallyarranged in a manner that is different than that shown in FIGS. 4 and 5.As called for by block B52, the controller 502 may determine when eachof the one or more first disk drives of the array for which spin-up wasinitiated reaches a predetermined spin rate that is less than a targetspin rate at which the disk drive is ready to process data accesscommands. When the platters of such one or more first disk drives reachthe predetermined spin rate, the controller at block B63 may initiatespin-up of one or more second disk drives. Such one or more second diskdrives may comprise a single disk drive of the array 504 or maycomprise, for example, an entire row (or other relevant grouping) ofdisk drives. For example, with reference to FIGS. 4 and 5, thecontroller 502, having determined that disk drives D1-D5 have eachreached the predetermined spin rate, may command next sequential seconddisk drives D6-D10 to spin-up, as a group. Alternatively, as each diskdrive D1-D5 reaches the predetermined spin rate, individual ones of thesecond disk drives D6-D10 may be spun-up in turn. If the second diskdrives are not spun-up in groups of predetermined size, the controller502 may ensure that no more than a maximum number of disk drivesspins-up at any given time, to keep the aggregate current draw withinthe specified capacity of the power supply to source such aggregatecurrent.

According to one embodiment, the controller 502 may be configured topoll the disk drives to determine when they have reached thepredetermined spin rate. According to one embodiment, code controllingthe disk drive spindle motor may be configured to update a status bitwhen the predetermined spin rate has been reached or exceeded. Suchstatus bit may then be interrogated or polled by the controller 502 toenable the determination of when the predetermined spin rate has beenreached. Alternatively, the disk drives of the array 504 may beconfigured to set one or more page codes of one or more mode pages(e.g., for Small Computer System Interface (SCSI) drives) when thepredetermined spin rate has been reached. In this embodiment, thecontroller 502 may be configured to interrogate the mode page(s) todetermine the set page code(s), and to interpret the obtained page codesto determine when the predetermined spin rate has been reached.Alternatively still and according to one embodiment, the controller 502may be configured to determine when the disk drives have reached thepredetermined spin rate by issuing an Inquiry command, in the casewherein the array 504 comprises Serial Advanced Technology Attachment(SATA) disk drives.

According to one embodiment, the controller 502 and the array of diskdrives 504 may be configured such that the controller 502 may determinethat the predetermined spin rate has been reached at least about 250 msprior to the disk drives indicating being ready to process data accesscommands. According to one embodiment, the controller 502 may determinethat the predetermined spin rate has been reached at least about 500 msto at least about 2 seconds prior to the disk drives indicating beingready to process data access commands. For example, the controller 502may determine that the predetermined spin rate has been reached at leastabout 1 second prior to the disk drives indicating being ready toprocess data access commands. Other timings are possible. Alternativelystill and according to one embodiment, the determination of havingreached the predetermined spin rate may be made by the controller 502monitoring the BEMF exhibited by the disk drives during spin-up. Thatis, when the disk drive(s) exhibit a BEMF that has dropped to or below athreshold point corresponding to the disk drive having spun-up to thepredetermined spin rate, the next sequential disk drive or drives may becommanded to spin-up. According to one embodiment, the firmware of thedisk drives of the array 504 may be configured to report to thecontroller 502 when the predetermined spin rate has been reached. Suchreporting may take the form of, for example, setting one or more bitsthat, when evaluated by a polling controller 502, are indicative of thedisk drive having reached its predetermined spin rate.

Advantageously, embodiments may take good advantage of prior knowledgeof the disk drive spin-up, current or BEMF profile of disk drives toenable a greater number of disk drives to be spun-up than isconventionally possible. Alternatively, a smaller power supply may beused than would otherwise be conventionally possible. Parameters otherthan that described herein may be used to determine when the disk driveshave reached the predetermined spin-rate. For example, analysis of thevibrations or audio signature of the drive may be indicative of thecurrent spin rate of the disk drive. Moreover, according to oneembodiment, the predetermined spin rate may be dynamically adjusted toambient conditions that may affect the spin rate of the disk drive orthe rate at which the disk drive platters are accelerated to reach theirtarget spin rates. According to one embodiment, the “Time to First Data”may be significantly improved in RAID and other installations.

While certain embodiments of the disclosure have been described, theseembodiments have been presented by way of example only, and are notintended to limit the scope of the disclosure. Indeed, the novelmethods, devices and systems described herein may be embodied in avariety of other forms. Furthermore, various omissions, substitutionsand changes in the form of the methods and systems described herein maybe made without departing from the spirit of the disclosure. Theaccompanying claims and their equivalents are intended to cover suchforms or modifications as would fall within the scope and spirit of thedisclosure. For example, those skilled in the art will appreciate thatin various embodiments, the actual physical and logical structures maydiffer from those shown in the figures. Depending on the embodiment,certain steps described in the example above may be removed, others maybe added. Also, the features and attributes of the specific embodimentsdisclosed above may be combined in different ways to form additionalembodiments, all of which fall within the scope of the presentdisclosure. Although the present disclosure provides certain preferredembodiments and applications, other embodiments that are apparent tothose of ordinary skill in the art, including embodiments which do notprovide all of the features and advantages set forth herein, are alsowithin the scope of this disclosure. Accordingly, the scope of thepresent disclosure is intended to be defined only by reference to theappended claims.

The invention claimed is:
 1. An array, comprising: a plurality of disk drives; and a controller coupled to the plurality of drives, the controller being configured to: initiate spin-up of at least one first disk drive of the array; interrogate each of the at least one first disk drive during spin-up; obtain information from the interrogated each of the at least one first disk drive while each of the at least one first disk drive is still spinning up; based upon the information obtained and, while each of the at least one first disk drive was still spinning up, determine when each of the at least one first disk drive of the array for which spin-up was initiated reaches a predetermined spin rate that is less than a target spin rate at which the disk drive is ready to process data access commands; and initiate spin-up of at least one second disk drive of the array as the interrogated at least one first disk drive is determined to have reached the predetermined spin rate.
 2. The array of claim 1, wherein the controller is further configured to initiate spin-up of at least one second disk drive as each of the at least one first disk drive is determined to have reached the predetermined spin rate.
 3. The array of claim 1, wherein the predetermined spin rate is predetermined for each kind of disk drive.
 4. The array of claim 1, wherein the predetermined spin rate is predetermined for each disk drive.
 5. The array of claim 1, wherein the predetermined spin rate is a predetermined percentage of the target spin rate.
 6. The array of claim 1, wherein at least one of the first and second disk drives is configured to set at least one page code of at least one mode page when the predetermined spin rate has been reached and wherein the controller is further configured to obtain the information by interrogating the mode pages of the at least one of the first and second disk drives to determine the set page codes.
 7. The array of claim 1, wherein the controller is configured to obtain the information by interrogating each of the at least one first disk drive by issuing an inquiry command to the at least one of the first and second disk drives.
 8. The array of claim 1 wherein, for at least one of the first and second disk drives, the predetermined spin rate is reached at least one second prior to the disk drive indicating being ready to process data access commands.
 9. The array of claim 1 wherein, for at least one of the first and second disk drives, the controller is configured to obtain the information by interrogating each of the at least one first disk drive by determining the back electro-motive force (BEMF) exhibited by the at least one of the first and second disk drives during spin-up.
 10. The array of claim 1, wherein the first and second disk drives each comprises firmware configured to report to the controller when the predetermined spin rate has been reached.
 11. The array of claim 1, wherein the array is configured as a Redundant Array of Independent Disks (RAID).
 12. A method, comprising: initiating spin-up of at least one first disk drive of an array of disk drives; interrogating each of the at least one first disk drive during spin-up; obtaining information from the interrogated each of the at least one first disk drive while each of the at least one first disk drive is still spinning up; based upon the information obtained and while each of the at least one first disk drive was still spinning up, determining when each of the at least one first disk drive of the array for which spin-up was initiated reaches a predetermined spin rate that is less than a target spin rate at which the disk drive is ready to process data access commands; and initiating spin-up of at least one second disk drive of the array as the interrogated at least one first disk drive is determined to have reached the predetermined spin rate.
 13. The method of claim 12, wherein initiating spin-up of the at least one second disk drive comprises initiating spin-up of the at least one second disk drive as each of the at least one first disk drive is determined to have reached the predetermined spin rate.
 14. The method of claim 12, wherein the predetermined spin rate is predetermined for each kind of disk drive.
 15. The method of claim 12, wherein the predetermined spin rate is predetermined for each disk drive.
 16. The method of claim 12, wherein the predetermined spin rate is a predetermined percentage of the target spin rate.
 17. The method of claim 12, further comprising at least one of the first and second disk drives setting at least one page code of at least one mode page when the predetermined spin rate has been reached and wherein interrogating comprises obtaining the information by interrogating the mode pages of the at least one of the first and second disk drives to determine the set page codes.
 18. The method of claim 12, wherein interrogating comprises obtaining the information by issuing an inquiry command to the at least one of the first and second disk drives.
 19. The method of claim 12 wherein, for at least one of the first and second disk drives, the predetermined spin rate is reached at least one second prior to the disk drive indicating being ready to process data access commands.
 20. The method of claim 12, further comprising obtaining the information by determining the back electro-motive force (BEMF) exhibited by the at least one of the first and second disk drives during spin-up.
 21. The method of claim 12, further comprising reporting, by at least one of the first and second disk drives, when the predetermined spin rate has been reached.
 22. The method of claim 12, further comprising configuring at least some of the first and second disk drives as a Redundant Array of Independent Disks (RAID).
 23. A data storage device controller configured to couple to a plurality of disk drives, the data storage device controller being configured to: initiate spin-up of at least one first disk drive of the plurality of disk drives; interrogate each of the at least one first disk drive during spin-up; obtain information from the interrogated each of the at least one first disk drive while each of the at least one first disk drive is still spinning up; based upon the information obtained and while each of the at least one first disk drive was still spinning up, determine when each of the at least one first disk drive of an array for which spin-up was initiated reaches a predetermined spin rate that is less than a target spin rate at which the disk drive is ready to process data access commands; and initiate spin-up of at least one second disk drive of the array as the interrogated at least one first disk drive is determined to have reached the predetermined spin rate. 